package core;

import java.lang.reflect.Proxy;

/**
 * describe:创建对象的拥有者，和对象的非拥有者
 *
 * @author helloworldyu
 * @data 2018/3/26
 */
public class PersonProxyUtil {

	/**
	 * 获取一个 拥有者代理
	 * @param person
	 * @return
	 */
	public static IPerson getOwnerProxy( IPerson person ){
		return (IPerson)Proxy.newProxyInstance(person.getClass().getClassLoader(),
				person.getClass().getInterfaces(),new OwnerInvocationHandler(person));
	}


	/**
	 * 获取一个 非拥有者代理
	 * @param person
	 * @return
	 */
	public static IPerson getNonOwnerProxy( IPerson person ){
		return (IPerson)Proxy.newProxyInstance(person.getClass().getClassLoader(),
				person.getClass().getInterfaces(),new NonOwnerInvocationHandler(person) );
	}
}